#ifndef _control_h
#define _control_h

#include <glib.h>
#include <SDL/SDL.h>
#define bmask(x)	(1 << x)

/* Caanoo button mapping */
#ifdef CAANOO
enum MAP_KEY {
    VK_FA,
    VK_FX,
    VK_FB,
    VK_FY,
    VK_FL,
    VK_FR,
    VK_HOME,
    VK_LOCK,
    VK_START,   // Button I
    VK_SELECT,  // Button II
    VK_TAT,
    VK_MAX,     // No more buttons

    /* Buttons Caanoo doesn't have */
    VK_UP_LEFT,
    VK_UP_RIGHT,
    VK_DOWN_LEFT,
    VK_DOWN_RIGHT,
    VK_VOL_DOWN,
    VK_VOL_UP,

    MB_LEFT     // Touchscreen
};
#else
/* GP2X/Wiz button mapping */
enum MAP_KEY {
	VK_UP         , // 0
	VK_UP_LEFT    , // 1
	VK_LEFT       , // 2
	VK_DOWN_LEFT  , // 3
	VK_DOWN       , // 4
	VK_DOWN_RIGHT , // 5
	VK_RIGHT      , // 6
	VK_UP_RIGHT   , // 7
	VK_START      , // 8
	VK_SELECT     , // 9
	VK_FL         , // 10
	VK_FR         , // 11
	VK_FA         , // 12
	VK_FB         , // 13
	VK_FX         , // 14
	VK_FY         , // 15
	VK_VOL_UP     , // 16
	VK_VOL_DOWN   , // 17
	VK_TAT        ,  // 18
	VK_MAX,

	/* Buttons GP2X/Wiz doesn't have */
	VK_LOCK,
	VK_HOME,
	MB_LEFT
};
#endif

int init_control();
void kill_control();
gboolean idle_control(gpointer);
void control_event(SDL_Event);

#endif
/* vim:set ts=2 sts=2 sw=2 noexpandtab: */
